Ultimamente tenho usado o
qbittorrent para gerenciar meus downloads torrent, porém havia um problema que estava me incomodando. Quando eu clicava na aba "Concluído", que mostra os downloads finalizados, o software exibia uma mensagem dizendo que alguns arquivos haviam mudado o status de "concluído" para "baixando" e perguntava se eu gostaria de mover o arquivo para a lista de
downloads novamente (sim ou não).
Ao escolher "Sim" ele retornava o arquivo finalizado para a lista de downloads e ao clicar "Não" o arquivo era excluído do disco (tsc tsc).
Quem usa o software com interface em inglês se depara com a seguinte mensagem:
"Incomplete torrent in seeding list
It appears that the state of '<torrentname>' torrent changed from 'seeding' to 'downloading'. Would you like to move it back to download list? (otherwise the torrent will simply be deleted)"
Pesquisando no Google encontrei a seguinte mensagem no fórum de bugs do Debian:
Bug#494801: [FWD: Bug#494801: qbittorrent: Moves torrents back and forth
A solução foi criada para a versão 1.2.0beta2 do qbittorrent, porém pode ser usada para o 1.1.0rc1 (que é o meu caso).
Baixar o código-fonte do qbittorrent:
sudo apt-get source qbittorrent
Entrar no diretório que contém o source:
cd qbittorrent-1.1.0~rc1
Instalar algumas dependências para a compilação do pacote (o comando abaixo resultará em instalação de dependências das dependências, digite "S" para confirmar):
sudo apt-get install dpatch qt4-qmake qt4-dev-tools libtorrent-rasterbar-dev libcurl4-openssl-dev fakeroot
Criar um arquivo com o patch de correção do bug citado:
vim patch-download
diff -ur qbittorrent-1.2.0beta2-orig/src/FinishedTorrents.cpp qbittorrent-1.2.0beta2/src/FinishedTorrents.cpp
--- qbittorrent-1.2.0beta2-orig/src/FinishedTorrents.cpp 2008-07-27 17:51:14.000000000 +0200
+++ qbittorrent-1.2.0beta2/src/FinishedTorrents.cpp 2008-08-15 17:32:19.007286759 +0200
@@ -265,7 +265,7 @@
if (reponse == QMessageBox::Yes) {
qDebug("Info: a torrent was moved from finished to download tab");
deleteTorrent(hash);
- BTSession->setFinishedTorrent(hash);
+ BTSession->setUnfinishedTorrent(hash);
emit torrentMovedFromFinishedList(hash);
}
else if (reponse == QMessageBox::No) {
diff -ur qbittorrent-1.2.0beta2-orig/src/qtorrenthandle.cpp qbittorrent-1.2.0beta2/src/qtorrenthandle.cpp
--- qbittorrent-1.2.0beta2-orig/src/qtorrenthandle.cpp 2008-07-16 23:54:01.000000000 +0200
+++ qbittorrent-1.2.0beta2/src/qtorrenthandle.cpp 2008-08-15 17:30:36.994620098 +0200
@@ -57,6 +57,8 @@
Q_ASSERT(h.is_valid());
if(!h.status().total_wanted)
return 0.;
+ if (h.status().total_wanted_done == h.status().total_wanted)
+ return 1.;
float progress = (float)h.status().total_wanted_done/(float)h.status().total_wanted;
Q_ASSERT(progress >= 0. && progress <= 1.);
return progress;
Aplicar o patch:
patch -p1 < patch-download
E finalmente gerar o pacote .deb novo:
fakeroot ./debian/rules binary
Será criado o arquivo qbittorrent_1.1.0~rc1-2_i386.deb num nível de diretório acima do corrente. Então é para lá que vamos:
cd ..
E agora vamos atualizar o qbittorrent:
sudo dpkg -i qbittorrent_1.1.0~rc1-2_i386.deb
Pronto! Problema resolvido (moleza né?! kkkkkkk).
Agradecimento especial ao
Christian Ohm, criador do patch acima.
Um abraço.